package com.jjh.users.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import com.alibaba.fastjson.annotation.JSONField;
import com.jjh.common.pojo.BasePojo;

import lombok.Data;

/**
 * 课程表的pojo
 * @author MyJJh
 *
 */
@Data
public class ACourse extends BasePojo<ACourse>
{
	private int id;
	private int createAdmId;
	private String name;
	private String totalHour;
	private int score;
	/* 已报名人数 */
	private int signNunm;
	private int remainNum;
	/* 总人数 */
	private int totalNum;
	private String imgPath;
	private String content;
	private byte status;
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date createTime;
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date updateTime;
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date pubTime;
	
	/**
	 * 关联对象
	 * 一个课程对应多个选课信息表
	 * 一个课程对应多个学生收藏表
	 */
	private List<ASelectCourse> selectCourse = new ArrayList<ASelectCourse>();
	
	private List<AStudentFav> selectStudentFav = new ArrayList<AStudentFav>();
	
	/**
	 * 一个课程对应一个老师
	 */
	private ATeacher teacher ;

	/**
	 * 对状态的描述 
	 */
	private String statusStr ;
	
	/**
	 * 存储枚举
	 * 枚举有三个元素
	 * map有两个元素
	 * map的key:枚举的对象-status,值是info
	 */
	private Map<String,String> enumsMap = new TreeMap<String, String>();
	
	public Map<String,String> getEnumsMap()
	{
		AStudentEnum[] enums = AStudentEnum.values();
		for(int i = 0 ; i < enums.length ; i ++)
		{
			AStudentEnum enumTemp = enums[i];
			this.enumsMap.put(enumTemp + "-" + enumTemp.getStatus(), enumTemp.getInfo());
		}
		return enumsMap;
	}
	
	/**
	 * 自己写一个get方法
	 */
	public String getStatusStr()
	{
		/* 取出所有的 */
		AStudentEnum[] enums = AStudentEnum.values();
		for(int i = 0 ; i < enums.length ; i ++)
		{
			AStudentEnum enumTemp = enums[i];
			/**
			 * enumTemp.toString():对象名
			 * enumTemp.getInfo():状态值
			 * enumTemp.getStatus():info值
			 */
			if(enumTemp.toString().startsWith("STATUS_") && enumTemp.getStatus() == this.getStatus())
			{
				this.statusStr = enumTemp.getInfo();
				break ;
			}
		}
		return statusStr ;
	}
	
}
